/**
 * 头像工具函数
 */

/**
 * 格式化头像URL
 * @param url 原始头像URL
 * @returns 格式化后的完整URL
 */
export const formatAvatarUrl = (url: string): string => {
  if (!url) return "";

  // 如果已经是完整URL，直接返回
  if (url.startsWith("http://") || url.startsWith("https://")) {
    return url;
  }

  // 如果是相对路径，添加基础URL
  const baseURL = import.meta.env.DEV
    ? "http://localhost:8081"
    : "http://localhost:8081";
  return baseURL + url;
};

/**
 * 获取默认头像URL
 * @returns 默认头像URL
 */
export const getDefaultAvatarUrl = (): string => {
  // 可以返回一个默认的头像图片URL
  return "/assets/default-avatar.png";
};

/**
 * 格式化图片URL（用于评论图片等）
 * @param url 原始图片URL
 * @returns 格式化后的完整URL
 */
export const formatImageUrl = (url: string): string => {
  if (!url) return "";

  // 如果已经是完整URL，直接返回
  if (url.startsWith("http://") || url.startsWith("https://")) {
    return url;
  }

  // 如果是相对路径，添加基础URL
  const baseURL = import.meta.env.DEV
    ? "http://localhost:8081"
    : "http://localhost:8081";
  return baseURL + url;
};

/**
 * 验证头像URL是否有效
 * @param url 头像URL
 * @returns 是否有效
 */
export const isValidAvatarUrl = (url: string): boolean => {
  if (!url) return false;

  // 检查是否是有效的URL格式
  try {
    if (url.startsWith("http://") || url.startsWith("https://")) {
      new URL(url);
      return true;
    }
    // 相对路径也认为是有效的
    return url.startsWith("/") || !url.includes("://");
  } catch {
    return false;
  }
};

/**
 * 将后端返回的布尔值转换为数字（0或1）
 * @param value 布尔值或数字
 * @returns 0 或 1
 */
export const booleanToNumber = (
  value: boolean | number | undefined | null
): number => {
  if (value === undefined || value === null) return 0;
  if (typeof value === "boolean") return value ? 1 : 0;
  return value ? 1 : 0;
};

/**
 * 判断是否为真值（兼容布尔值和数字）
 * @param value 布尔值或数字
 * @returns 是否为真
 */
export const isTruthy = (
  value: boolean | number | undefined | null
): boolean => {
  if (value === undefined || value === null) return false;
  if (typeof value === "boolean") return value;
  return value === 1 || value === true;
};
